查看原文
其他

【大数据哔哔集20210127】Kafka企业搭建之核心参数详解

点击上方蓝色字体,选择“设为星标”

回复”资源“获取更多惊喜

服务端核心参数

  • broker.id=0 每个broker唯一id号,在源码里面是根据这个来判定一个broker的

  • listeners=hostname://:9092 当前broker对外提供访问的broker

  • num.network.threads=3 是服务端将请求转发时候的线程数,一般设置为 6 或者 9 根据自己机器的性能以及业务场景

  • num.io.threads=8 真正处理数据的线程 一般为io密集型 设计为2-3倍比较好

  • log.dirs 我们有多块硬盘 log.dirs=/data01/logs,/data02/logs

  • log.flush.interval.messages和log.flush.interval.messages 是刷写磁盘的是后按照时间和按照数据的条数

  • log.retention.hours kafka保存数据的时间周期,默认是7天 3天就够了 有的只保留12个小时

  • zookeeper.connect 是zk集群地址

  • message.max.bytes 消息最大 大小,默认是977kb 可以修改为10M

生产者核心参数

  • buffer.memory 设置发送消息的缓冲区,默认是32M

  • compression.type 默认是none,不压缩,但是也可以使用lz4压缩,效率还是不错的,但是会提高cpu的开销

  • batch.size 设置batch的大小,如果batch太小,会导致频繁的网络请求,吞吐量下降,如果batch太大,会导致一条消息需要等待很久才能被发送出去,而且会让内存缓冲区有很大的压力过多的数据缓存在内存里,默认值是16KB,也就是一个batch满了的时候会把这个batch发送出去,一般在生产环境会适当的增大这个值,如果消息大小大于这个,那么就会使用消息大小(源码中是这样的)

  • linger.ms 这个值默认是0,意思就是消息必须立即被发送,但是这样是不对的,一般设置一个100ms,这样的话就是如果100ms内这个batch满了16KB就会发送出去,如果是0 那么 batch.size 就失效




【大数据哔哔集20210126】全图呈现美团酒旅数据治理实践

【大数据哔哔集20210125】Kafka将逐步弃用对zookeeper的依赖

【大数据哔哔集20210124】有人问我Kafka Leader选举?我真没慌

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存